package jdh.util.generic;

import java.util.List;

import org.hibernate.criterion.Order;

public interface IGenericDAO<PK, Entidade> {

	public void insert(Entidade entidade);

	public void update(Entidade entidade);

	public void delete(Entidade entidade);

	public void deleteById(PK id);

	public void merge(Entidade entidade);

	public void refresh(Entidade entidade);

	public void flush();

	public void clear();

	public Entidade findById(PK id);

	public List<Entidade> search(Entidade objeto, Order... ordenacoes);

	public List<Entidade> search(Entidade objeto, Integer indiceInicial,
			Integer indiceFinal, Order... ordenacoes);

	public int numRows();

	public List<Entidade> findAll(Order... ordenacoes);

	public List<Entidade> findAll(Integer indiceInicial, Integer indiceFinal,
			Order... ordenacoes);
}
